﻿using System;
using System.Linq;
using System.Collections.Generic;

namespace HashFoo.Rest.Common
{
    /// <summary>
    /// A collection of resource to uri mappings.
    /// </summary>
    /// <remarks>
    /// Uris should probably be relative.
    /// </remarks>
    public interface IResourceUriCollection : IEnumerable<ResourceUri>
    {
        /// <summary>
        /// Get the uri (relative?) for a resource type.
        /// </summary>
        /// <param name="resourceType"></param>
        /// <returns></returns>
        string GetUri(Type resourceType);

        /// <summary>
        /// Get teh uri (relative) for a resource type.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        string GetUri<T>();
    }
}